home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / clean / sun3.lha / Sun3 / deltaB.abc < prev    next >
Text File  |  1992-08-07  |  4KB  |  316 lines

  1. .comp 800 111111011
  2. .code     136       7      30
  3. .start _nostart_
  4. .endinfo
  5. .implab _cycle_in_spine
  6. .implab _reserve
  7. .implab _type_error
  8. .impdesc _Defer
  9. .implab _defer_code
  10. .implab _hnf
  11. .impdesc _Cons
  12. .impdesc _Tuple
  13. .impdesc _Select
  14. .impdesc _Nil
  15. .implab _driver
  16. .implab e_system_nAP
  17. .implab e_system_sAP
  18. .impdesc e_system_AP
  19. .desc m_deltaB _hnf _hnf 0 "deltaB"
  20.  
  21. .export e_deltaB_NOT
  22. .export e_deltaB_sNOT
  23. .export e_deltaB_nNOT
  24. .desc e_deltaB_NOT e_deltaB_nNOT e_deltaB_lNOT 1 "NOT"
  25. .o 2 0
  26. e_deltaB_lNOT:
  27.     pop_a 1
  28. .d 1 0
  29.     jsr eaNOT
  30. .o 0 1 b
  31.     create
  32.     fillB_b 0 0
  33.     pop_b 1
  34. .d 1 0
  35.     rtn
  36. .n 1 e_deltaB_NOT
  37. .o 1 0
  38. e_deltaB_nNOT:
  39.     push_node _reserve 1
  40. .d 1 0
  41.     jsr eaNOT
  42. .o 0 1 b
  43.     getWL 0
  44.     fillB_b 0 0
  45.     release
  46.     pop_b 1
  47. .d 1 0
  48.     rtn
  49. .o 1 0
  50. eaNOT:
  51.             ||    BOOL
  52.     jsr_eval
  53.             ||    BOOL
  54.     pushB_a 0
  55.     pop_a 1
  56. .o 0 1 b
  57. e_deltaB_sNOT:
  58. .o 0 1 b
  59. sNOT.1:
  60.             ||    Match code for alternative 1, stacksizes A: 0 B: 1
  61.             ||    Building the contractum, Stacksizes A: 0 B: 1
  62. .inline NOT
  63.     notB
  64. .end
  65. .d 0 1 b
  66.     rtn
  67. .export e_deltaB_AND
  68. .export e_deltaB_sAND
  69. .export e_deltaB_nAND
  70. .desc e_deltaB_AND e_deltaB_nAND e_deltaB_lAND 2 "AND"
  71. .o 2 0
  72. e_deltaB_lAND:
  73.     repl_args 1 1
  74. .d 2 0
  75.     jsr eaAND
  76. .o 0 1 b
  77.     create
  78.     fillB_b 0 0
  79.     pop_b 1
  80. .d 1 0
  81.     rtn
  82. .n 2 e_deltaB_AND
  83. .o 1 0
  84. e_deltaB_nAND:
  85.     push_node _reserve 2
  86. .d 2 0
  87.     jsr eaAND
  88. .o 0 1 b
  89.     getWL 0
  90.     fillB_b 0 0
  91.     release
  92.     pop_b 1
  93. .d 1 0
  94.     rtn
  95. .o 2 0
  96. eaAND:
  97.             ||    BOOL
  98.     push_a 1
  99.     jsr_eval
  100.     pop_a 1
  101.             ||    BOOL
  102.     jsr_eval
  103.             ||    BOOL
  104.     pushB_a 1
  105.             ||    BOOL
  106.     pushB_a 0
  107.     pop_a 2
  108. .o 0 2 b b
  109. e_deltaB_sAND:
  110. .o 0 2 b b
  111. sAND.1:
  112.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  113.             ||    Building the contractum, Stacksizes A: 0 B: 2
  114. .inline AND
  115.     andB
  116. .end
  117. .d 0 1 b
  118.     rtn
  119. .export e_deltaB_OR
  120. .export e_deltaB_sOR
  121. .export e_deltaB_nOR
  122. .desc e_deltaB_OR e_deltaB_nOR e_deltaB_lOR 2 "OR"
  123. .o 2 0
  124. e_deltaB_lOR:
  125.     repl_args 1 1
  126. .d 2 0
  127.     jsr eaOR
  128. .o 0 1 b
  129.     create
  130.     fillB_b 0 0
  131.     pop_b 1
  132. .d 1 0
  133.     rtn
  134. .n 2 e_deltaB_OR
  135. .o 1 0
  136. e_deltaB_nOR:
  137.     push_node _reserve 2
  138. .d 2 0
  139.     jsr eaOR
  140. .o 0 1 b
  141.     getWL 0
  142.     fillB_b 0 0
  143.     release
  144.     pop_b 1
  145. .d 1 0
  146.     rtn
  147. .o 2 0
  148. eaOR:
  149.             ||    BOOL
  150.     push_a 1
  151.     jsr_eval
  152.     pop_a 1
  153.             ||    BOOL
  154.     jsr_eval
  155.             ||    BOOL
  156.     pushB_a 1
  157.             ||    BOOL
  158.     pushB_a 0
  159.     pop_a 2
  160. .o 0 2 b b
  161. e_deltaB_sOR:
  162. .o 0 2 b b
  163. sOR.1:
  164.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  165.             ||    Building the contractum, Stacksizes A: 0 B: 2
  166. .inline OR
  167.     orB
  168. .end
  169. .d 0 1 b
  170.     rtn
  171. .export e_deltaB_=B
  172. .export e_deltaB_s=B
  173. .export e_deltaB_n=B
  174. .desc e_deltaB_=B e_deltaB_n=B e_deltaB_l=B 2 "=B"
  175. .o 2 0
  176. e_deltaB_l=B:
  177.     repl_args 1 1
  178. .d 2 0
  179.     jsr ea=B
  180. .o 0 1 b
  181.     create
  182.     fillB_b 0 0
  183.     pop_b 1
  184. .d 1 0
  185.     rtn
  186. .n 2 e_deltaB_=B
  187. .o 1 0
  188. e_deltaB_n=B:
  189.     push_node _reserve 2
  190. .d 2 0
  191.     jsr ea=B
  192. .o 0 1 b
  193.     getWL 0
  194.     fillB_b 0 0
  195.     release
  196.     pop_b 1
  197. .d 1 0
  198.     rtn
  199. .o 2 0
  200. ea=B:
  201.             ||    BOOL
  202.     push_a 1
  203.     jsr_eval
  204.     pop_a 1
  205.             ||    BOOL
  206.     jsr_eval
  207.             ||    BOOL
  208.     pushB_a 1
  209.             ||    BOOL
  210.     pushB_a 0
  211.     pop_a 2
  212. .o 0 2 b b
  213. e_deltaB_s=B:
  214. .o 0 2 b b
  215. s=B.1:
  216.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  217.             ||    Building the contractum, Stacksizes A: 0 B: 2
  218. .inline =B
  219.     eqB
  220. .end
  221. .d 0 1 b
  222.     rtn
  223. .export e_deltaB_<>B
  224. .export e_deltaB_s<>B
  225. .export e_deltaB_n<>B
  226. .desc e_deltaB_<>B e_deltaB_n<>B e_deltaB_l<>B 2 "<>B"
  227. .o 2 0
  228. e_deltaB_l<>B:
  229.     repl_args 1 1
  230. .d 2 0
  231.     jsr ea<>B
  232. .o 0 1 b
  233.     create
  234.     fillB_b 0 0
  235.     pop_b 1
  236. .d 1 0
  237.     rtn
  238. .n 2 e_deltaB_<>B
  239. .o 1 0
  240. e_deltaB_n<>B:
  241.     push_node _reserve 2
  242. .d 2 0
  243.     jsr ea<>B
  244. .o 0 1 b
  245.     getWL 0
  246.     fillB_b 0 0
  247.     release
  248.     pop_b 1
  249. .d 1 0
  250.     rtn
  251. .o 2 0
  252. ea<>B:
  253.             ||    BOOL
  254.     push_a 1
  255.     jsr_eval
  256.     pop_a 1
  257.             ||    BOOL
  258.     jsr_eval
  259.             ||    BOOL
  260.     pushB_a 1
  261.             ||    BOOL
  262.     pushB_a 0
  263.     pop_a 2
  264. .o 0 2 b b
  265. e_deltaB_s<>B:
  266. .o 0 2 b b
  267. s<>B.1:
  268.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  269.             ||    Building the contractum, Stacksizes A: 0 B: 2
  270. .inline <>B
  271.     eqB
  272.     notB
  273. .end
  274. .d 0 1 b
  275.     rtn
  276. .export e_deltaB_BTOS
  277. .export e_deltaB_sBTOS
  278. .export e_deltaB_nBTOS
  279. .desc e_deltaB_BTOS e_deltaB_nBTOS e_deltaB_lBTOS 1 "BTOS"
  280. .o 2 0
  281. e_deltaB_lBTOS:
  282.     update_a 1 0
  283.     create
  284.     update_a 0 2
  285.     pop_a 1
  286. .d 2 0
  287.     jmp eaBTOS
  288. .n 1 e_deltaB_BTOS
  289. .o 1 0
  290. e_deltaB_nBTOS:
  291.     push_node _reserve 1
  292. .o 2 0
  293. eaBTOS:
  294.             ||    BOOL
  295.     jsr_eval
  296.             ||    BOOL
  297.     pushB_a 0
  298.     pop_a 1
  299. .o 1 1 b
  300. e_deltaB_sBTOS:
  301. .o 1 1 b
  302. sBTOS.1:
  303.             ||    Match code for alternative 1, stacksizes A: 0 B: 1
  304.             ||    Building the contractum, Stacksizes A: 0 B: 1
  305. .inline BTOS
  306.     create
  307.     fillB_b 0 0
  308.     pop_b 1
  309.     getWL 1
  310.     fillS_symbol 0 1
  311.     release
  312.     pop_a 1
  313. .end
  314. .d 1 0
  315.     rtn
  316.